import {getStore,setStore,getStoreByJson,setStoreByJson,removeStore} from '@/utils/storeUtil'

/**
 * 用户状态管理模块
 * 1、token登录状态
 */

/**
 * state 属性名称映射
 */
const Fields = {
  token: 'token',
  userInfo: 'userInfo',
  access: 'access',
}

export default {
  state: {
    /**
     * 用户登录验证令牌
     */
    token: getStore(Fields.token),
    /**
     * 用户信息
     */
    userInfo: getStoreByJson(Fields.userInfo)
  },
  mutations: {
    /**
     * 保存用户登录验证令牌
     * @param {状态} state
     * @param {登录令牌} token
     */
    saveToken(state, token) {
      setStore(Fields.token,token)
      state.token = token
    },
    /**
     * 保存用户信息
     */
    saveUserInfo(state, userInfo){
      setStoreByJson(Fields.userInfo, userInfo)
      state.userInfo = userInfo
    },
    /**
     * 退出登录
     */
    userLogout(state){
      removeStore(Fields.token)
      state.token = ''
      removeStore(Fields.userInfo)
      state.userInfo = () => ({})
      removeStore(Fields.access)
    }
  },
  actions: {

  },
  getters: {

  }
}
